package com.netty.bytebuf;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;

import java.nio.charset.StandardCharsets;
import java.util.Arrays;

/**
 * @author renyitong
 * @version 1.0.0
 * @createTime 2023年08月10日
 * @Description
 */
public class DirectBufferDemo {

    public static void main(String[] args) {
        // 创建一个容量为10的直接缓冲区（堆外内存实现）
        ByteBuf buf = Unpooled.directBuffer(10);
        buf.writeBytes("全体起立!!!".getBytes(StandardCharsets.UTF_8));

        // 直接缓冲区的操作
        byte[] bytes = new byte[buf.readableBytes()];
        buf.readBytes(bytes);
        String content = new String(bytes);
        System.out.println("直接缓冲区中的数据为: " +content);

        // 报错, 因为不能直接拿到数组，因为底层压根不是数组实现的
        System.out.println(Arrays.toString(buf.array()));
    }

}
